# -*- Mode: Python -*-
# vim: filetype=python
#
# SPDX-License-Identifier: GPL-2.0-or-later

##
# ************
# Accelerators
# ************
##

{ 'include': 'common.json' }

##
# @KvmInfo:
#
# Information about support for KVM acceleration
#
# @enabled: true if KVM acceleration is active
#
# @present: true if KVM acceleration is built into this executable
#
# Since: 0.14
##
{ 'struct': 'KvmInfo', 'data': {'enabled': 'bool', 'present': 'bool'} }

##
# @query-kvm:
#
# Return information about KVM acceleration
#
# Since: 0.14
#
# .. qmp-example::
#
#     -> { "execute": "query-kvm" }
#     <- { "return": { "enabled": true, "present": true } }
##
{ 'command': 'query-kvm', 'returns': 'KvmInfo' }

##
# @x-accel-stats:
#
# Query accelerator statistics
#
# Features:
#
# @unstable: This command is meant for debugging.
#
# Returns: accelerator statistics
#
# Since: 10.1
##
{ 'command': 'x-accel-stats',
  'returns': 'HumanReadableText',
  'features': [ 'unstable' ] }

##
# @Accelerator:
#
# Information about support for MSHV acceleration
#
# @hvf: Apple Hypervisor.framework
#
# @kvm: KVM
#
# @mshv: Hyper-V
#
# @nvmm: NetBSD NVMM
#
# @qtest: QTest (dummy accelerator)
#
# @tcg: TCG (dynamic translation)
#
# @whpx: Windows Hypervisor Platform
#
# @xen: Xen
#
# Since: 10.2.0
##
{ 'enum': 'Accelerator', 'data': ['hvf', 'kvm', 'mshv', 'nvmm', 'qtest', 'tcg', 'whpx', 'xen'] }

##
# @AcceleratorInfo:
#
# Information about support for various accelerators
#
# @enabled: the accelerator that is in use
#
# @present: the list of accelerators that are built into this executable
#
# Since: 10.2.0
##
{ 'struct': 'AcceleratorInfo', 'data': {'enabled': 'Accelerator', 'present': ['Accelerator']} }

##
# @query-accelerators:
#
# Return information about accelerators
#
# Returns: @AcceleratorInfo
#
# Since: 10.2.0
#
# .. qmp-example::
#
#     -> { "execute": "query-accelerators" }
#     <- { "return": { "enabled": "mshv", "present": ["kvm", "mshv", "qtest", "tcg"] } }
##
{ 'command': 'query-accelerators', 'returns': 'AcceleratorInfo' }
